package twoSum;

import java.util.HashSet;
import java.util.Set;

public class Solution {
//    public int[] twoSum(int[] numbers, int target) {
//        // 二分查找
//        for (int i = 0; i < numbers.length; i++) {
//            int j = binarySearch(numbers,i+1,numbers.length-1,target-numbers[i]);
//            if(j!=-1) {
//                return new int[]{i,j};
//            }
//        }
//        return null;
//    }
//    private int binarySearch(int[] nums,int l,int r,int target) {
//        while (l<=r) {
//            int mid = l+(r-l)/2;
//            if(nums[mid]>target) {
//                r = mid-1;
//            }else if (nums[mid]<target) {
//                l = mid+1;
//            }else {
//                return mid;
//            }
//        }
//        return -1;
//    }
public int[] twoSum(int[] numbers, int target) {
// 双指针
    int i = 0,j = numbers.length-1;
    while (i<j) {
        if(numbers[i] + numbers[j]>target) {
            j--;
        }else if(numbers[i]+numbers[j]<target) {
            i++;
        }else {
            return new int[]{i,j};
        }
    }
    return null;
}
}
